/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Control;

import DAO.PrivilegioDAO;
import DAO.UsuarioDAO;
import Model.Privilegio;
import Model.Usuario;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;

/**
 *
 * @author Maury
 */
public class cadastraUsuario extends Processor {

    @Override
    public void execute() throws ServletException, IOException {
        PrintWriter out = getResponse().getWriter();
        getResponse().setContentType("text/html;charset=UTF-8");
        try{
            String nome = (String) getRequest().getParameter("nome");
            String login = (String) getRequest().getParameter("login");
            String p = (String) getRequest().getParameter("privilegio");
            String senha = (String) getRequest().getParameter("senha");
            String n = (String) getRequest().getParameter("nascimento");
            String email = (String) getRequest().getParameter("email");
            
            if(nome == null || login == null || p == null || senha == null || n == null || email == null){
                throw new ServletException();
            }            
            
            if(nome.equals("") && login.equals("") && p.equals("") && senha.equals("") && email.equals("")){
                String erro = "Dados Inválidos!";
                getRequest().setAttribute("erro", erro);
                RequestDispatcher rd = getRequest().getRequestDispatcher("cadastraUsuario.jsp");
                rd.forward(getRequest(), getResponse());
            }
            
            Date nascimento = null;
            
            if(!n.equals("")){
                String formato = "dd/mm/yyyy";
                nascimento = new SimpleDateFormat(formato).parse(n);
            }
            int privilegio = Integer.parseInt(p);
            Privilegio priv = PrivilegioDAO.pesquisar(privilegio);
            Usuario user = new Usuario();
            user.setNome(nome);
            user.setPrivilegio(priv);
            user.setNascimento(nascimento);
            user.setSenha(senha);
            user.setLogin(login);
            user.setEmail(email);
            user.setBloquear(false);
            boolean sucesso = UsuarioDAO.inserir(user);
            
            if(sucesso){
                String mensagem = "Usuário cadastrado com sucesso!";
                getRequest().setAttribute("mensagem", mensagem);
                RequestDispatcher rd = getRequest().getRequestDispatcher("menuAdministrador.jsp");
                rd.forward(getRequest(), getResponse());
            }
            else if(!sucesso){
                String erro = "Usuário já existe!";
                getRequest().setAttribute("erro", erro);
                RequestDispatcher rd = getRequest().getRequestDispatcher("cadastraUsuario.jsp");
                rd.forward(getRequest(), getResponse());
            }
        }
        catch(SQLException e){
            throw new ServletException(e); 
        }
        catch(ClassNotFoundException e){
            throw new ServletException(e);
        }
        catch(ParseException e){
            String erro = "Dados Inválidos!";
            getRequest().setAttribute("erro", erro);
            RequestDispatcher rd = getRequest().getRequestDispatcher("cadastraUsuario.jsp");
            rd.forward(getRequest(), getResponse());
        }
    }
        
}
